/**
 * @description: 国际化相关工具函数
 * @author: roma
 * @date: 2023/3/12 16:03
 */

// 支持语言列表
export const supportedLanguages = ['zh', 'en', 'id']

/**
 * 获取用户首选语言
 * 优先级：本地存储 > 浏览器语言 > 默认语言(zh)
 */
export function getPreferredLanguage(): string {
    // 首先检查本地存储中是否已有保存的语言设置
    const savedLocale = localStorage.getItem('locale')
    if (savedLocale) {
        return savedLocale
    }

    // 获取浏览器语言
    const browserLang = navigator.language.toLowerCase()

    // 检查浏览器语言是否是我们支持的语言之一
    // 通常浏览器返回的格式是 "zh-CN" 或 "en-US" 这样的，我们需要提取主要部分
    const mainLang = browserLang.split('-')[0]

    // 检查是否支持该语言，如果支持则使用，否则使用默认语言
    return supportedLanguages.includes(mainLang) ? mainLang : 'zh'
}

/**
 * 保存用户语言选择到本地存储
 */
export function saveLocale(locale: string): void {
    localStorage.setItem('locale', locale)
}